'use strict';
const dayjs = require("dayjs");
module.exports = app => {
    const { STRING, INTEGER, DATE } = app.Sequelize;
    const User = app.model.define(
        'User',
        {
            id: { type: INTEGER, primaryKey: true, autoIncrement: true },
            nickname: STRING(255),
            avatar_url: STRING(255),
            password: STRING(255),
            email: STRING(255),
            phone: STRING(255),
            remark: STRING(255),
            role_id: { type: INTEGER, defaultValue: 0 },
            dept_id: { type: INTEGER, defaultValue: 0 },
            status: INTEGER,
            create_time: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('create_time')).format('YYYY-MM-DD HH:mm:ss');
                }
            },
            updated_time: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('updated_time')).format('YYYY-MM-DD HH:mm:ss');
                }
            }
        },
        {
            tableName: 'user',
            timestamps: true, // 启用时间戳(createdAt, updatedAt)
            createdAt: 'create_time',
            updatedAt: 'updated_time'
        }
    );
    User.associate = function() {
      app.model.User.belongsTo(app.model.Role, { foreignKey: 'role_id', targetKey: 'id', as: 'role' });
    }
    return User;
};
// 创建mysql建表语句
// CREATE TABLE `user` (
//   `id` int(11) NOT NULL AUTO_INCREMENT,
//   `nickname` varchar(255) DEFAULT NULL,
//   `phone` varchar(255) DEFAULT NULL,
//   `role` int(11) DEFAULT '0',
//   `dept` int(11) DEFAULT '0',
//   `status` int(11) DEFAULT NULL,
//   `create_time` datetime DEFAULT NULL,
//   `updated_time` datetime DEFAULT NULL,
//   PRIMARY KEY (`id`)
// ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
